package com.xd.core.company.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 企业信息
 * </p>
 *
 * @author ZX
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="CompanyTow对象", description="企业信息")
public class Company implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "企业ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "省份")
    private Integer province;

    @ApiModelProperty(value = "地市")
    private Integer city;

    @ApiModelProperty(value = "区县")
    private Integer county;

    @ApiModelProperty(value = "公司类型（1-资管，2-代理，3-集团）")
    private String companyType;

    @ApiModelProperty(value = "集团公司ID")
    private Integer blocId;

    @ApiModelProperty(value = "联系电话（签约合同使用）")
    private String companyPhone;

    @ApiModelProperty(value = "经营范围")
    private String businessType;

    @ApiModelProperty(value = "平台商务经理")
    private Integer businessManager;

    @ApiModelProperty(value = "企业名称")
    private String companyName;

    @ApiModelProperty(value = "企业类型")
    private String typeOfEnterprise;

    @ApiModelProperty(value = "统一社会信用代码")
    private String unifiedSocialCreditCode;

    @ApiModelProperty(value = "企业住所(注册地址)")
    private String locationOfEnterprise;

    @ApiModelProperty(value = "法定代表人")
    private String legalEntityName;

    @ApiModelProperty(value = "法定代表人身份证")
    private String corporateIdCard;

    @ApiModelProperty(value = "法定代表人正面身份证地址")
    private String corporateIdCardUrl;

    @ApiModelProperty(value = "法定代表人反面身份证地址")
    private String corporateIdBackCardUrl;

    @ApiModelProperty(value = "法定代表人手机")
    private String legalEntityPhone;

    @ApiModelProperty(value = "注册资本")
    private String registeredCapital;

    @ApiModelProperty(value = "营业执照文件地址")
    private String license;

    @ApiModelProperty(value = "营业执照有效期开始")
    private Date businessLicenseStartExpired;

    @ApiModelProperty(value = "营业执照有效期结束")
    private Date businessLicenseExpired;

    @ApiModelProperty(value = "企业邮箱")
    private String companyEmail;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "当前分配人员")
    private Integer allocationUserId;

    @ApiModelProperty(value = "公证书服务费（1-放款比例，2-固定金额）")
    private String notarizationChargeType;

    @ApiModelProperty(value = "公证书服务费底价")
    private BigDecimal notarizationChargeFloor;

    @ApiModelProperty(value = "公证书服务费收费比例")
    private BigDecimal notarizationChargeRate;

    @ApiModelProperty(value = "公证执行书服务费（1-放款比例，2-固定金额）")
    private String executeChargeType;

    @ApiModelProperty(value = "公证执行书服务费底价")
    private BigDecimal executeChargeFloor;

    @ApiModelProperty(value = "公证执行书服务费收费比例")
    private BigDecimal executeChargeRate;

    @ApiModelProperty(value = "合同服务费（单笔收费）")
    private BigDecimal contractFee;

    @ApiModelProperty(value = "合同服务费（统一收费）")
    private BigDecimal contractFeeTotal;

    @ApiModelProperty(value = "服务费收费类型（1-每笔收费，2-一起收）")
    private String contractChargeType;

    @ApiModelProperty(value = "企业三要素认证状态(0--未认证，1--认证)")
    private String authStatus;

    @ApiModelProperty(value = "印章编号")
    private String sealNo;

    @ApiModelProperty(value = "进件状态(0--启用,1--停用)")
    private String incomingStatus;

    @ApiModelProperty(value = "所属资方")
    private Integer capitalId;

    @ApiModelProperty(value = "剩余服务费")
    private BigDecimal balance;

    @ApiModelProperty(value = "放款账户余额（单位分）")
    private Long outBalance;

    @ApiModelProperty(value = "宝付账户余额（单位分）")
    private Long baofuBalance;

    @ApiModelProperty(value = "通道二宝付账户余额（单位分）")
    private Long towBaofuBalance;

    @ApiModelProperty(value = "放款账户余额冻结金额（单位分）")
    private Long outBalanceFreeze;

    @ApiModelProperty(value = "通道二放款账户宝付余额冻结金额（单位分）")
    private Long towOutBalanceFreeze;

    @ApiModelProperty(value = "入金累计金额（单位分）")
    private Long rechargeAmount;

    @ApiModelProperty(value = "回款累计金额（单位分）")
    private Long returnAmount;

    @ApiModelProperty(value = "通道二回款累计金额（单位分）")
    private Long towReturnAmount;

    @ApiModelProperty(value = "通道二回款账户余额（单位分）")
    private Long towReturnBalance;

    @ApiModelProperty(value = "通道二回款账户冻结余额（单位分）")
    private Long towReturnBalanceFreeze;

    @ApiModelProperty(value = "入金费率")
    private BigDecimal depositRate;

    @ApiModelProperty(value = "入金服务费类型（1--比例，2--固定金额）")
    private String depositType;

    @ApiModelProperty(value = "入金服务费定价")
    private BigDecimal depositAmount;

    @ApiModelProperty(value = "单笔放款服务费")
    private BigDecimal outServiceFee;

    @ApiModelProperty(value = "资方联系人")
    private String contacts;

    @ApiModelProperty(value = "合作合同")
    private String cooperativeContract;

    @ApiModelProperty(value = " 债权转让框架合同签署状态(1--待签署,2--已签署,3-过期，4.拒签，5-失败)")
    private String contractStatus;

    @TableField(exist = false)
    @ApiModelProperty(value = "机构编号")
    private String prestoreNo;

    @TableField(exist = false)
    @ApiModelProperty(value = "预存款账户申请状态（1-未申请，2-申请中，3-申请成功，4-上传失败）")
    private String prestoreApplyStatus;

    @ApiModelProperty(value = "银行账号")
    private String bankAccount;

    @ApiModelProperty(value = "开户行")
    private String openingBank;

    @ApiModelProperty(value = "联行账号")
    private String interbankAccount;

    @ApiModelProperty(value = "单笔（划扣）回款服务费比率(单位‰)")
    private BigDecimal collectionDeductionServiceFee;

    @ApiModelProperty(value = "单笔（转账）回款服务费比率(单位‰)")
    private BigDecimal collectionTransfeServiceFee;

    @ApiModelProperty(value = "代扣开关 0:代扣 1:不代扣")
    private String withholdSwitch;

    @ApiModelProperty(value = "集团名称")
    private String blocName;

    @ApiModelProperty(value = "核算方式（1-独立核算，2-非独立核算）")
    private String accountingType;

    @ApiModelProperty(value = "通道（1-通道一，2-通道二）")
    private String thoroughFare;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "是否支持外部数据（0-不支持，1-支持）")
    private String isOpenStatus;

    @ApiModelProperty(value = "是否冻结账户（0--否，1--是）")
    private String isFreeze;

    @ApiModelProperty(value = "提现手续费比例(单位‰)")
    private BigDecimal repayAccountFee;

    @ApiModelProperty(value = "提现手续费底价(单位：元）")
    private BigDecimal repayAccountFloor;

    @ApiModelProperty(value = "提现手续费类型（1--比例，2--固定金额")
    private String repayAccountType;

}
